/**
 * files 递归获取src文件夹下的所有以.vue结尾文件
 * 三个参数：
 * 一个要搜索的目录，
 * 一个标记表示是否还搜索其子目录，
 * 以及一个匹配文件的正则表达式。
 * 匹配index.vue结尾的页面作为路由
 */
const files = require.context('@/pages/modules', true, /^.*(index.vue){1}$/)
// key是文件的名称 ./system/depts/index.vue ,files（key）.default拿到该模块的vue对象
const pages = {}
files.keys().forEach((key) => {
    pages[key.replace(/(\.\/|\.vue)/g, '')] = files(key).default
})
/**
 * generator 生成路由规则,实例如下
 * [
 *  {
 *     path: "/",
 *     name: "home",
 *     component: HomeView (= // import HomeView from "../views/homeView/index.vue"; =)
 *     component: ()=>import("@/views/homeView/index.vue"),
 *  }
 * ]
 */

const generator = []
Object.keys(pages).forEach((item) => {
    const Rpath = item.replace(/\/index/g, '')
    const RpathList = Rpath.split('/')
    let Rname = ''
    if (RpathList.length > 1) {
        RpathList.forEach((item, index) => {
            if (index > 0) {
                item = item.toString()
                item = item.slice(0, 1).toUpperCase() + item.slice(1)
            }
            Rname += item
        })
    } else {
        Rname = Rpath
    }

    generator.push({
        path: `/${Rpath}`,
        name: Rname,
        component: pages[item]
    })
})
// 读取文件生成得需要权限得路由
// console.log("====generator====", generator)
export default generator
